package com.example.kaoshi;

import java.util.Scanner;

/**
 * Created by Quincy on 2018/10/11.
 */
public class ren1 {

    public static void main(String[] args){
        MyFullBitMap ms = new MyFullBitMap();
        byte[] bytes = null;
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for (int i = 0; i < n; i++){
            int num = scanner.nextInt();
            bytes = ms.setBit(num);
        }
        ms.output(bytes);
    }


}

class MyFullBitMap {
    // 定义一个byte数组表示所有的int数据，一bit对应一个，共2^32b=2^29B=512MB
    private byte[] dataBytes = new byte[1 << 29];

    /**
     * 读取数据，并将对应数数据的 到对应的bit中，并返回byte数组
     *
     * @param num
     *            读取的数据
     * @return byte数组 dataBytes
     */
    public byte[] setBit(int num) {

        long bitIndex = num + (1l << 31); // 获取num数据对应bit数组（虚拟）的索引
        int index = (int) (bitIndex / 8); // bit数组（虚拟）在byte数组中的索引
        int innerIndex = (int) (bitIndex % 8); // bitIndex 在byte[]数组索引index 中的具体位置

        // System.out.println("byte[" + index + "] 中的索引：" + innerIndex);

        dataBytes[index] = (byte) (dataBytes[index] | (1 << innerIndex));
        return dataBytes;
    }

    /**
     * 输出数组中的数据
     *
     * @param bytes
     *            byte数组
     */
    public  void output(byte[] bytes) {
        int count = 0;
        for (int i = 0; i < bytes.length; i++) {
            for (int j = 0; j < 8; j++) {
                if (((bytes[i]) & (1 << j)) != 0) {
                    count++;
                    int number = (int) ((((long) i * 8 + j) - (1l << 31)));
                     System.out.print(number + " ");
                }
            }
        }
    }
}
